

Vue.config.productionTip=false  //以阻止 vue 在启动时生成生产提示。 <!-- 全局配置 -->
new Vue({
    el: '#category-app',
    data:{
        //当前登录的用户信息
        user:{
            name: 'admin',

        },
        //显示分类信息
        input: '',     //搜索内容
        total: 0,            //总条目数
        currentPage: 1,             //当前显示页数
        pageSize: 10,        //每页所支持的最大条数
        pages : 1,           //总页数
        tableData : [        //表单内容

        ],
        //新增菜品分类
        dialogFoodVisible: false,
        foodData:{
            name: '',
            type: 1,
            sort: null
        },
        //新增套餐分类
        dialogComboVisible:false,
        comboData:{
            name: '',
            type: 2,
            sort: null
        },
        //修改分类信息
        dialogUpdateVisible:false,
        updateData:{
            id: null,
            name: '',
            type: 1,
            sort: null,
            updateTime: null
        },
        //效验规则
        rules:{
            name: [{ required: true, message: '名称必填项', trigger: 'blur' }],  //blur失去焦点
        }
    },
    created(){
        this.init();
    },
    methods:{
        //获取数据
        init(){
            axios({
                methods: "get",
                url: "/category/page",
                params:{
                    name: this.input,
                    currentPage:this.currentPage,
                    pageSize: this.pageSize,
                }
            }).then((res)=>{
                if(res.data.code==1){
                    this.tableData=res.data.data.records;
                    this.total=parseInt(res.data.data.total);      //总条目数
                    this.pageSize=parseInt(res.data.data.size);    //每页所支持的最大条数
                    this.pages=parseInt(res.data.data.pages);      //总页数
                }else{
                    this.$message.error(res.data.msg);
                }
            });
        },
        //显示新增菜品分类弹窗
        showFood(){
            this.dialogFoodVisible=true;
        },
        //提交新增菜品分类
        submitFoodForm(){
            this.$refs.foodData.validate((valid) => {
                if (valid) {
                    this.$confirm("确定添加此菜品，是否继续？","提示",{
                        confirmButtonText:"确定",
                        cancelButtonText:"取消",
                        type: "warning"
                    }).then(()=> {   //选择确定的情况
                        axios({
                            method: "POST",
                            url: "/category/save",
                            data:this.foodData
                        }).then((res)=>{
                            if(res.data.code==0){
                                this.$message.error(res.data.msg);
                            }else{
                                this.$message.success({
                                    message: res.data.msg,
                                    type: 'success'
                                });
                                this.$refs.foodData.resetFields();      //清空表单
                            }
                        }).finally(()=>{
                            this.init();
                        });
                    }).catch(()=>{   //选择取消的情况
                        this.$message({
                            type:"into",
                            message:"已取消"
                        });
                    }).finally(()=>{
                        this.dialogFoodVisible=false;
                    });
                } else {
                    this.$message.error('此提交不符合规则');
                    return false;
                }
            });
        },
        //显示新增套餐分类弹窗
        showCombo(){
            this.dialogComboVisible=true;
        },
        //提交新增套餐分类
        submitComboForm(){
            this.$refs.comboData.validate((valid) => {
                if (valid) {
                    this.$confirm("确定添加此套餐，是否继续？","提示",{
                        confirmButtonText:"确定",
                        cancelButtonText:"取消",
                        type: "warning"
                    }).then(()=> {   //选择确定的情况
                        axios({
                            method: "POST",
                            url: "/category/save",
                            data:this.comboData
                        }).then((res)=>{
                            if(res.data.code==0){
                                this.$message.error(res.data.msg);
                            }else{
                                this.$message.success({
                                    message: res.data.msg,
                                    type: 'success'
                                });
                                this.$refs.comboData.resetFields();      //清空表单
                            }
                        }).finally(()=>{
                            this.init();
                        });
                    }).catch(()=>{   //选择取消的情况
                        this.$message({
                            type:"into",
                            message:"已取消"
                        });
                    }).finally(()=>{
                        this.dialogComboVisible=false;
                    });
                } else {
                    this.$message.error('此提交不符合规则');
                    return false;
                }
            });
        },

        //显示修改弹窗
        editHandle(id){
            axios({
                method: "get",
                url: "/category/gainByID/"+id,
            }).then((res)=>{
                if(res.data.code==0){
                    this.$message.error(res.data.msg);
                }else{
                    this.updateData.id=res.data.data.id;
                    this.updateData.name=res.data.data.name;
                    this.updateData.type=res.data.data.type;
                    this.updateData.sort=res.data.data.sort;
                    this.dialogUpdateVisible=true;
                }
            });
        },
        //修改分类信息
        submitUpdateForm(){
            this.$refs.updateData.validate((valid) => {
                if (valid) {
                    this.$confirm("确定修改，是否继续？","提示",{
                        confirmButtonText:"确定",
                        cancelButtonText:"取消",
                        type: "warning"
                    }).then(()=> {   //选择确定的情况
                        axios({
                            method: "POST",
                            url: "/category/update",
                            data:this.updateData
                        }).then((res)=>{
                            if(res.data.code==0){
                                this.$message.error(res.data.msg);
                            }else{
                                this.$message.success({
                                    message: res.data.msg,
                                    type: 'success'
                                });
                                this.$refs.updateData.resetFields();      //清空表单
                            }
                        }).finally(()=>{
                            this.init();
                        });
                    }).catch(()=>{   //选择取消的情况
                        this.$message({
                            type:"into",
                            message:"已取消"
                        });
                    }).finally(()=>{
                        this.dialogUpdateVisible=false;
                    });
                } else {
                    this.$message.error('此提交不符合规则');
                    return false;
                }
            });
        },
        //删除分类信息
        deleteHandle(id){
            this.$confirm("确定删除分类信息，是否继续？","提示",{
                confirmButtonText:"确定",
                cancelButtonText:"取消",
                type: "warning"
            }).then(()=> {   //选择确定的情况
                axios({
                    method: "Delete",
                    url: "/category/deleteById/"+id,
                }).then((res)=>{
                    if(res.data.code==0){
                        this.$message.error(res.data.msg);
                    }else{
                        this.$message.success({
                            message: res.data.msg,
                            type: 'success'
                        });
                    }
                }).finally(()=>{
                    this.init();
                });
            }).catch(()=>{   //选择取消的情况
                this.$message({
                    type:"into",
                    message:"已取消"
                });
            });
        },
        //每页显示的条目数改变时会触发
        handleSizeChange(val){
            this.pageSize = val;
            this.init()
        },
        //当前页改变时会触发
        handleCurrentChange(val){
            this.currentPage = val;
            this.init()
        },
    }
})